6-dars. Char seriyasi
Darsning Maqsadlari:
- Char seriyasi va uning ahamiyatini tushunish.
- Char seriyasini e'lon qilish, to'ldirish va chiqarish usullarini o'rganish.
string.hkutubxonasidagi asosiy funksiyalarni tushunish va ulardan foydalanish.ctype.hkutubxonasining asosiy funksiyalarini o'rganish.- Har bir funksiyaning qanday ishlashini misollar orqali ko'rish.
Char Seriyasi Nima?
Dasturlashda char seriyasi - bu belgilar ketma-ketligi. Har bir belgi bitta char tipidagi o'zgaruvchini ifodalaydi. Char seriyasini ko‘pincha matn sifatida tasvirlash mumkin. Dasturlashda ko‘plab vazifalarni bajarishda foydalanamiz.
Masalan, sizga “Salom, dunyo!” matnini ekranga chiqarish kerak bo'lsa, uni char seriyasida saqlash va chiqarish mumkin. Keling, qanday qilib char seriyasini e'lon qilishni o'rganamiz.
Char Seriyasini E'lon Qilish
Char seriyasini e'lon qilish oddiy:
char message[20]; // 20 ta belgi saqlay oladigan char seriyasi
Bu yerda message nomli char seriyasi e'lon qilingani ko'rinadi. Uning uzunligi 20 ta belgi, ya'ni 19 ta belgidan (0 bilan tugagan holda) iborat bo'lishi kerak.
Char seriyalari har doim 0 ('\0') belgisi bilan tugaydi. Bu belgi seriyaning oxirini ko'rsatadi.
Hayotiy Misol:
Aytaylik, siz do'stingizga SMS yozmoqchisiz: “Salom! Qalaysan?” Buni char seriyasida yozishingiz mumkin.
char message[] = "Salom! Qalaysan?"; // Barcha belgilar avtomatik ravishda saqlanadi
Char Seriyasiga Kiritish
Char seriyasiga qiymat kiritish uchun scanf funksiyasidan foydalanamiz. Keling, oddiy misol ko‘raylik:
#include <stdio.h>
int main() {
char name[50]; // 50 ta belgidan iborat char seriyasi
printf("Ismingizni kiriting: ");
scanf("%s", name); // Foydalanuvchidan ismini olish
printf("Salom, %s!\n", name); // Kiritilgan ismi bilan salom berish
return 0;
}
scanf yordamida char seriyasiga belgilarning birini kiritamiz. Qiziqarli fakt: Odatda scanf bilan char seriyalarga faqat bir so'z kiritiladi (bo'sh joyga qadar), agar siz butun jumlani kiritmoqchi bo'lsangiz, fgets funksiyasidan foydalaning.
Char Seriyasini Chiqarish
Char seriyasini ekranga chiqarish uchun printf funksiyasidan foydalanamiz. Misol:
#include <stdio.h>
int main() {
char message[] = "Salom, dunyo!";
printf("%s\n", message); // char seriyasini chiqarish
return 0;
}
Hazil: “Dunyodagi eng tezkor e'lon — ‘Salom’! O'zi har doim chiroyli!” 😄
string.h Kutubxonasi Funksiyalari
string.h kutubxonasi belgilardan iborat seriyalar bilan ishlash uchun ko'plab foydali funksiyalarni o'z ichiga oladi. Keling, ularni birma-bir ko‘rib chiqaylik:
strlen
Bu funksiya char seriyasining uzunligini hisoblaydi.
#include <string.h>
char str[] = "Hello";
int length = strlen(str); // length 5 bo'ladi
strcpy
Bu funksiya bir char seriyasini boshqa char seriyasiga nusxalash uchun ishlatiladi.
char source[] = "Salom";
char destination[50]; // destination uchun joy ajratamiz
strcpy(destination, source); // source dan destination ga nusxalash
strncpy
Bu funksiya strcpy kabi, lekin siz berilgan uzunlikgacha nusxalash imkonini beradi.
char source[] = "Salom, do'stim!";
char destination[20];
strncpy(destination, source, 5); // faqat 5 ta belgi nusxalanadi
destination[5] = '\0'; // oxiriga 0 belgisi qo'shamiz
strcat
Bu funksiya bir char seriyasini boshqa char seriyasiga qo‘shadi.
char greeting[50] = "Salom, ";
char name[] = "Ali";
strcat(greeting, name); // "Salom, Ali" ga aylantiradi
strncat
Bu funksiya strcat kabi, lekin siz berilgan uzunlikgacha qo‘shish imkonini beradi.
char greeting[50] = "Salom, ";
char name[] = "Ali";
strncat(greeting, name, 2); // faqat 2 ta belgi qo'shadi
strcmp
Bu funksiya ikkita char seriyasini taqqoslaydi.
char str1[] = "Salom";
char str2[] = "Salom";
if (strcmp(str1, str2) == 0) {
printf("Ikkita seriya bir xil.\\n");
} else {
printf("Ikkita seriya farq qiladi.\\n");
}
ctype.h Kutubxonasi
ctype.h — bu C dasturlash tilidagi bir kutubxona bo'lib, belgilarni tekshirish uchun bir qator funksiyalarni o'z ichiga oladi. Ushbu funksiyalar har bir belgining turini aniqlash va o'zgartirishda yordam beradi. Keling, har bir funktsiyani ko‘rib chiqamiz.
isalpha
Bu funksiya berilgan belgining alifbo harfi ekanligini tekshiradi.
#include <ctype.h>
#include <stdio.h>
char ch = 'A';
if (isalpha(ch)) {
printf("%c harfi alifbo harfidir.\n", ch);
} else {
printf("%c harfi alifbo harfi emas.\n", ch);
}
isalpha funktsiyasi faqat A-Z va a-z belgilari uchun true (haqiqat) qaytaradi.
isdigit
Bu funksiya berilgan belgining raqam ekanligini tekshiradi.
char ch = '5';
if (isdigit(ch)) {
printf("%c raqamdir.\n", ch);
} else {
printf("%c raqam emas.\n", ch);
}
isdigit yordamida raqamlarni tekshirish dasturlashda foydali bo'ladi, chunki ba'zi hollarda foydalanuvchi kiritgan ma'lumotlar raqamli bo'lishi kerak.
isalnum
Bu funksiya belgining alifbo harfi yoki raqam ekanligini tekshiradi.
char ch = 'g';
if (isalnum(ch)) {
printf("%c alifbo harfi yoki raqamdir.\n", ch);
}
isspace
Bu funksiya belgining bo'sh joy, yangi qator yoki boshqa bo'sh joy belgilari ekanligini tekshiradi.
char ch = ' ';
if (isspace(ch)) {
printf("Bu belgi bo'sh joy.\n");
}
ispunct
Bu funksiya belgining maxsus belgilar ekanligini tekshiradi (masalan, nuqta, vergul, va boshqalar).
char ch = '!';
if (ispunct(ch)) {
printf("%c maxsus belgidir.\n", ch);
}
islower
Bu funksiya belgining kichik harf ekanligini tekshiradi.
char ch = 'a';
if (islower(ch)) {
printf("%c kichik harfdir.\n", ch);
}
isupper
Bu funksiya belgining katta harf ekanligini tekshiradi.
char ch = 'Z';
if (isupper(ch)) {
printf("%c katta harfdir.\n", ch);
}
tolower
Bu funksiya berilgan katta harfni kichik harfga o'giradi.
char ch = 'B';
char lower = tolower(ch);
printf("Kichik harf: %c\n", lower);
toupper
Bu funksiya berilgan kichik harfni katta harfga o'giradi.
char ch = 'c';
char upper = toupper(ch);
printf("Katta harf: %c\n", upper);
Xulosa
Char seriyasi dasturlashda matnlar bilan ishlashning asosiy elementi. Biz char seriyalarini e'lon qilish, kiritish, chiqarish va string.h kutubxonasidan foydalanib bir nechta foydali funksiyalarni ko'rib chiqdik. Ushbu dasturlar orqali belgilarga ishlov berish osonlashadi va kodni yozishni yanada samarali qiladi.
ctype.h kutubxonasi belgilarning turini aniqlash va o'zgartirishda foydali funksiyalarni taqdim etadi. Har bir funksiya o'ziga xos vazifani bajaradi va dasturchilarga belgilarning sifatini tahlil qilishda yordam beradi.
Savollar:
- Char seriyasi nima?
strlenfunksiyasi qanday ishlaydi?strcpyvastrncpyo'rtasidagi farq nima?strcmpfunksiyasidan qanday foydalanamiz?isalphafunksiyasi nima uchun ishlatiladi?isdigitvaisalnumo'rtasidagi farq nima?isspacefunksiyasi qanday vazifani bajaradi?tolowervatoupperfunksiyalari qanday ishlaydi?